home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
User's Choice Windows CD
/
User's Choice Windows CD (CMS Software)(1993).iso
/
win_q_t
/
trem.zip
/
WINDOW.C
< prev
next >
Wrap
Text File
|
1991-05-11
|
5KB
|
183 lines
/************************************************************************
*
* Copyright (c) 1991 Microsoft Corporation. All Rights Reserved.
*
*-----------------------------------------------------------------------
*
* Project: Windows Terminal Example
*
* Module: window.c
*
* Author: Bryan A. Woodruff (baw)
*
*
* Remarks: Terminal window procedure
*
* Revisions:
* 01.00.000 5/ 9/91 baw Wrote it.
*
************************************************************************/
#include "terminal.h"
/************************************************************************
* LONG FAR PASCAL TerminalWndProc( HWND hWnd, WORD wMsg,
* WORD wParam, LONG lParam )
*
* Description:
* This is the Terminal Window Proc. This handles ALL messages
* to the terminal window.
*
* Comments:
* 01.00.000 5/ 9/91 baw Wrote it.
*
************************************************************************/
LONG FAR PASCAL TerminalWndProc( HWND hWnd, WORD wMsg,
WORD wParam, LONG lParam )
{
switch (wMsg)
{
case WM_CREATE:
{
HMENU hMenu ;
LOCALHANDLE hTermInfo ;
if (NULL == (hTermInfo = CreateTerminal( hWnd )))
return ( -1 ) ;
SetWindowWord( hWnd, GWW_TERMINFO, hTermInfo ) ;
hMenu = GetMenu( hWnd ) ;
EnableMenuItem( hMenu, IDM_DISCONNECT,
MF_GRAYED | MF_DISABLED | MF_BYCOMMAND ) ;
EnableMenuItem( hMenu, IDM_CONNECT, MF_ENABLED | MF_BYCOMMAND ) ;
}
break ;
case WM_COMMAND:
{
switch (wParam)
{
case IDM_CONNECT:
{
HMENU hMenu ;
if (OpenConnection( hWnd ))
{
hMenu = GetMenu( hWnd ) ;
EnableMenuItem( hMenu, IDM_DISCONNECT,
MF_ENABLED | MF_BYCOMMAND ) ;
EnableMenuItem( hMenu, IDM_CONNECT,
MF_GRAYED | MF_DISABLED | MF_BYCOMMAND ) ;
}
else
MessageBox( hWnd, "Connection failed.", szAppName,
MB_ICONEXCLAMATION ) ;
}
break ;
case IDM_DISCONNECT:
{
HMENU hMenu ;
CloseConnection( hWnd ) ;
hMenu = GetMenu( hWnd ) ;
EnableMenuItem( hMenu, IDM_DISCONNECT,
MF_GRAYED | MF_DISABLED | MF_BYCOMMAND ) ;
EnableMenuItem( hMenu, IDM_CONNECT,
MF_ENABLED | MF_BYCOMMAND ) ;
}
break ;
case IDM_SETTINGS:
{
LOCALHANDLE hTermInfo ;
NPTERMINFO npTermInfo ;
hTermInfo = GetWindowWord( hWnd, GWW_TERMINFO ) ;
GoModalDialogBoxParam( hAppInst, "SettingsDlg", hWnd,
SettingsDlgProc, (DWORD) hTermInfo ) ;
// if fConnected, set new COM parameters
if (NULL != (npTermInfo = (NPTERMINFO) LocalLock( hTermInfo )))
{
if (npTermInfo -> fConnected)
{
if (!SetupConnection( hWnd ))
MessageBox( hWnd, "Settings failed!", szAppName,
MB_ICONEXCLAMATION ) ;
}
LocalUnlock( hTermInfo ) ;
}
}
break ;
case IDM_ABOUT:
GoModalDialogBoxParam ( hAppInst, "AboutDlg", hWnd,
AboutDlgProc, NULL ) ;
break;
case IDM_EXIT:
PostMessage( hWnd, WM_CLOSE, NULL, 0L ) ;
break ;
}
}
break ;
case WM_EVENT_RXCHAR:
ProcessRxEvent( hWnd, wParam, lParam ) ;
break ;
case WM_PAINT:
PaintTerminal( hWnd ) ;
break ;
case WM_SIZE:
SizeTerminal( hWnd, HIWORD( lParam ), LOWORD( lParam ) ) ;
break ;
case WM_HSCROLL:
ScrollTerminalHorz( hWnd, wParam, LOWORD( lParam ) ) ;
break ;
case WM_VSCROLL:
ScrollTerminalVert( hWnd, wParam, LOWORD( lParam ) ) ;
break ;
case WM_CHAR:
WriteCharacter( hWnd, LOBYTE( wParam ) ) ;
break ;
case WM_SETFOCUS:
SetTerminalFocus( hWnd ) ;
break ;
case WM_KILLFOCUS:
KillTerminalFocus( hWnd ) ;
break ;
case WM_DESTROY:
DestroyTerminal( hWnd ) ;
PostQuitMessage( 0 ) ;
break ;
case WM_CLOSE:
if (IDOK != MessageBox( hWnd, "OK to close window?", "Terminal",
MB_ICONQUESTION | MB_OKCANCEL ))
break ;
// fall through
default:
return( DefWindowProc( hWnd, wMsg, wParam, lParam ) ) ;
}
return 0L ;
} /* end of TerminalWndProc() */
/************************************************************************
* End of File: window.c
************************************************************************/